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