etreschenkov 2026-05-19 12:11:28 +03:00
parent a60d3fc32f
commit b7424f63a7
2 changed files with 6 additions and 6 deletions

View file

@ -188,10 +188,10 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
private String checkBalance(OrderCurrency orderCurrency) {
Registry pmtRegistry = imdgQueryService.getRegistryById(orderCurrency.getRegistryId());
Registry amtRegistry = null;
Registry amfRegistry = null;
boolean isRubPmt = pmtRegistry.getSecuritySymbol().equals(CurrencyCode.RUB.getKey());
if (!isRubPmt) {
amtRegistry = imdgQueryService.findAmtRegistry(pmtRegistry, CurrencyCode.RUB.getKey());
amfRegistry = imdgQueryService.findAmtRegistry(pmtRegistry, CurrencyCode.RUB.getKey());
}
String currency = isRubPmt ? CurrencyCode.CNY.getKey() : pmtRegistry.getSecuritySymbol();
@ -203,7 +203,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
BigDecimal diff = isRubPmt ?
pmtRegistry.getBalance().add(val) :
amtRegistry.getBalance().subtract(val);
amfRegistry.getBalance().subtract(val);
if (diff.compareTo(BigDecimal.ZERO) < 0) {
return String.format("Для ТКР %s компании %s: баланс %s RUB;",
pmtRegistry.getTradingClearingRegistry(), pmtRegistry.getShortName(),

View file

@ -118,16 +118,16 @@ public class OrderCalculationService {
BigDecimal sum1 = planPosition.divide(rateValue, MC).abs();
Registry am_t = imdgQueryService.findAmtRegistry(registry, "CNY");
Registry am_f = imdgQueryService.findAmtRegistry(registry, "CNY");
Collection<Registry> om_ts = imdgQueryService.findOTRegistry(registry, RegistryTradingParams.OM_T, "CNY");
Collection<Registry> tm_ts = imdgQueryService.findOTRegistry(registry, RegistryTradingParams.TM_T, "CNY");
log.trace("calculation for {}[{}]: AM*T[{}], OM*T[{}], TM*T[{}]",
registry.getRegistryCode(),
registry.getId(),
am_t != null ? am_t.getId() : null,
am_f != null ? am_f.getId() : null,
logColl(om_ts, SpcexObjectBase::getId, 10),
logColl(tm_ts, SpcexObjectBase::getId, 10));
BigDecimal planPositionCny = safeBD(am_t, Registry::getBalance)
BigDecimal planPositionCny = safeBD(am_f, Registry::getBalance)
.subtract(safeSumBD(om_ts, Registry::getBalance))
.add(safeSumBD(tm_ts, Registry::getBalance));