fix check balance for cny
This commit is contained in:
parent
7a622f8a70
commit
c8fabb4444
1 changed files with 9 additions and 5 deletions
|
|
@ -46,12 +46,15 @@ import ru.spcex.platform.enumeration.ObjectType;
|
|||
import ru.spcex.platform.enumeration.OrderStatus;
|
||||
import ru.spcex.platform.enumeration.OvernightType;
|
||||
import ru.spcex.platform.enumeration.Priority;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import ru.spcex.platform.enumeration.Side;
|
||||
import ru.spcex.platform.enumeration.Task;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeSumBD;
|
||||
|
||||
@Service
|
||||
public class TaskListener extends QueueConsumer implements InitializingBean {
|
||||
|
|
@ -194,11 +197,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
|
|||
log.debug("Check balance for registryId={}; order ids: {}", registryId,
|
||||
orderCurrencies.stream().map(OrderCurrency::getId).collect(Collectors.toList()));
|
||||
Registry pmtRegistry = imdgQueryService.getRegistryById(registryId);
|
||||
Registry amfRegistry = null;
|
||||
boolean isRubPmt = pmtRegistry.getSecuritySymbol().equals(CurrencyCode.RUB.getKey());
|
||||
if (!isRubPmt) {
|
||||
amfRegistry = imdgQueryService.findAmfRegistry(pmtRegistry, CurrencyCode.RUB.getKey());
|
||||
}
|
||||
|
||||
String currency = isRubPmt ? CurrencyCode.CNY.getKey() : pmtRegistry.getSecuritySymbol();
|
||||
Rates rates = imdgQueryService.getRateOnNextWorkingDay(currency);
|
||||
|
|
@ -215,7 +214,12 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
|
|||
registryBalance = pmtRegistry.getBalance();
|
||||
diff = registryBalance.add(summaryValByCurrencies);
|
||||
} else {
|
||||
registryBalance = amfRegistry.getBalance();
|
||||
Registry amfRegistry = imdgQueryService.findAmfRegistry(pmtRegistry, CurrencyCode.RUB.getKey());
|
||||
Collection<Registry> om_ts = imdgQueryService.findOTRegistry(pmtRegistry, RegistryTradingParams.OM_T, CurrencyCode.RUB.getKey());
|
||||
Collection<Registry> tm_ts = imdgQueryService.findOTRegistry(pmtRegistry, RegistryTradingParams.TM_T, CurrencyCode.RUB.getKey());
|
||||
registryBalance = safeBD(amfRegistry, Registry::getBalance)
|
||||
.subtract(safeSumBD(om_ts, Registry::getBalance))
|
||||
.add(safeSumBD(tm_ts, Registry::getBalance));
|
||||
diff = registryBalance.subtract(summaryValByCurrencies);
|
||||
}
|
||||
log.debug("Registry balance: {}; Summary balance by orders: {}; diff: {}", registryBalance,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue