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)
|
callback(CreateRegistryRequest.class)
|
||||||
.setConsumer(event -> registryService.createRegistry(event.getRequestPayload()))
|
.setConsumer(event -> registryService.createRegistry(event.getRequestPayload()))
|
||||||
.forDestination(Consts.REGISTRY_NEW, callbacks::put);
|
.forDestination(Consts.REGISTRY_NEW, callbacks::put);
|
||||||
|
callback(LauncherCommandRequest.class)
|
||||||
|
.setConsumer(event -> registryService.resetBalances())
|
||||||
|
.forDestination(Task.createRegistry_GRYT.topic(), callbacks::put);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RegistryService {
|
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);
|
TradingClearingRegistryType registryType = IEnumKey.getEnumByKey(TradingClearingRegistryType.class, type);
|
||||||
RegistryTradingParams registryInfo = null;
|
RegistryTradingParams registryInfo = null;
|
||||||
//todo спросить про дубль C и T
|
//todo спросить про дубль C и T
|
||||||
switch (registryType){
|
switch (registryType) {
|
||||||
case Owner_A -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.A, RegistryUnit.T);
|
case Owner_A ->
|
||||||
case Client_B -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.T);
|
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.A, RegistryUnit.T);
|
||||||
case Trustee_C, DepoOfShares_T -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.T);
|
case Client_B ->
|
||||||
case TrusteeManager_D -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.A);
|
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.T);
|
||||||
case Issuer_E -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.E, RegistryUnit.R);
|
case Trustee_C, DepoOfShares_T ->
|
||||||
case ToThePlacementOrRedeem_Z -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.Z, RegistryUnit.R);
|
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.T);
|
||||||
case DepoBond_H -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.R);
|
case TrusteeManager_D ->
|
||||||
case DepoOfTrustedBond_N -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.C, RegistryUnit.R);
|
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.A);
|
||||||
case DepoOfTrustedShares_S -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.C, RegistryUnit.T);
|
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;
|
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