This commit is contained in:
parent
4166d7f685
commit
a74a7e1643
1 changed files with 13 additions and 11 deletions
|
|
@ -97,6 +97,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
|
|||
log.info("CROR createOrder started, request={}", newReq);
|
||||
|
||||
Collection<Long> registryIds = imdgQueryService.getCurrencyRegistry();
|
||||
//todo очередность создания
|
||||
if (registryIds == null || registryIds.isEmpty()) {
|
||||
log.info("No registries found for CROR processing");
|
||||
return;
|
||||
|
|
@ -167,24 +168,25 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
|
|||
|
||||
private String checkBalance(OrderCurrency orderCurrency) {
|
||||
Registry pmtRegistry = imdgQueryService.getRegistryById(orderCurrency.getRegistryId());
|
||||
Registry amtRegistry = imdgQueryService.findAmtRegistry(pmtRegistry, CurrencyCode.RUB.getKey());
|
||||
String currency = pmtRegistry.getSecuritySymbol().equals(CurrencyCode.RUB.getKey())
|
||||
? CurrencyCode.CNY.getKey() : pmtRegistry.getSecuritySymbol();
|
||||
Registry amtRegistry = null;
|
||||
boolean isRubPmt = pmtRegistry.getSecuritySymbol().equals(CurrencyCode.RUB.getKey());
|
||||
if (!isRubPmt) {
|
||||
amtRegistry = imdgQueryService.findAmtRegistry(pmtRegistry, CurrencyCode.RUB.getKey());
|
||||
}
|
||||
|
||||
String currency = isRubPmt ? CurrencyCode.CNY.getKey() : pmtRegistry.getSecuritySymbol();
|
||||
SCrossRate sCrossRate = imdgQueryService.getSCrossRates(currency, LocalDate.now());
|
||||
|
||||
BigDecimal val = orderCurrency.getQuantityLot()
|
||||
.multiply(orderCurrency.getLotSize())
|
||||
.multiply(sCrossRate.getUnitRate());
|
||||
BigDecimal diff;
|
||||
int compareRes = amtRegistry.getBalance().compareTo(BigDecimal.ZERO);
|
||||
if (compareRes < 0) {
|
||||
diff = amtRegistry.getBalance().add(val);
|
||||
} else {
|
||||
diff = amtRegistry.getBalance().subtract(val);
|
||||
}
|
||||
|
||||
BigDecimal diff = isRubPmt ?
|
||||
pmtRegistry.getBalance().add(val) :
|
||||
amtRegistry.getBalance().subtract(val);
|
||||
if (diff.compareTo(BigDecimal.ZERO) < 0) {
|
||||
return String.format("Для ТКР %s компании %s: баланс %s RUB;",
|
||||
amtRegistry.getTradingClearingRegistry(), amtRegistry.getShortName(),
|
||||
pmtRegistry.getTradingClearingRegistry(), pmtRegistry.getShortName(),
|
||||
diff.setScale(2, RoundingMode.HALF_UP));
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue