This commit is contained in:
parent
f7c774d4f1
commit
29d62c68cb
1 changed files with 46 additions and 48 deletions
|
|
@ -120,58 +120,56 @@ public class Application extends MessageCracker implements quickfix.Application,
|
|||
OrdStatus ordStatus = executionReport.getOrdStatus();
|
||||
ClOrdID clOrdID = executionReport.getClOrdID();
|
||||
|
||||
Pattern orderIdPattern = Pattern.compile("(\\d{6})-([A-Z]+)-(\\d+)");
|
||||
// Matcher matcher = orderIdPattern.matcher(orderId.getValue());
|
||||
// if (matcher.matches()) {
|
||||
// LocalDate tradeDate = LocalDate.parse(matcher.group(1), DateTimeFormatter.ofPattern("yyMMdd"));
|
||||
// String classCode = matcher.group(2);
|
||||
Long orderNum = Long.parseLong(clOrdID.getValue());
|
||||
Long orderNum = null;
|
||||
try {
|
||||
orderNum = Long.parseLong(clOrdID.getValue());
|
||||
} catch (NumberFormatException ignore) {}
|
||||
|
||||
Imdg<SOrders> sOrdersImdg = transaction.getImdg(IMDGDistributedNames.Map_SOrders, SOrders.class);
|
||||
SOrders sOrders = sOrdersImdg.getSingleObjectByPredicate(sOrdersImdg.predicateBuilder().and(
|
||||
sOrdersImdg.predicateBuilder().equals("orderNum", orderNum),
|
||||
sOrdersImdg.predicateBuilder().equals("classCode", exDestination.getValue()),
|
||||
sOrdersImdg.predicateBuilder().equals("tradeDate", transactTime.getValue().toLocalDate())));
|
||||
if (sOrders == null) {
|
||||
sOrders = new SOrders();
|
||||
sOrders.setId(imdgProvider.getImdgIdGenerator().nextId());
|
||||
sOrders.setOrderNum(orderNum);
|
||||
sOrders.setExchangeOrderNum(orderId.getValue());
|
||||
sOrders.setClassCode(exDestination.getValue());
|
||||
sOrders.setTradeDate(transactTime.getValue().toLocalDate());
|
||||
Imdg<SOrders> sOrdersImdg = transaction.getImdg(IMDGDistributedNames.Map_SOrders, SOrders.class);
|
||||
SOrders sOrders = sOrdersImdg.getSingleObjectByPredicate(sOrdersImdg.predicateBuilder().and(
|
||||
sOrdersImdg.predicateBuilder().equals("orderNum", orderNum),
|
||||
sOrdersImdg.predicateBuilder().equals("classCode", exDestination.getValue()),
|
||||
sOrdersImdg.predicateBuilder().equals("tradeDate", transactTime.getValue().toLocalDate())));
|
||||
if (sOrders == null) {
|
||||
sOrders = new SOrders();
|
||||
sOrders.setId(imdgProvider.getImdgIdGenerator().nextId());
|
||||
sOrders.setOrderNum(orderNum);
|
||||
sOrders.setExchangeOrderNum(orderId.getValue());
|
||||
sOrders.setClassCode(exDestination.getValue());
|
||||
sOrders.setTradeDate(transactTime.getValue().toLocalDate());
|
||||
|
||||
if (executionReport.isSetSecurityID())
|
||||
sOrders.setSecCode(executionReport.getSecurityID().getValue());
|
||||
if (executionReport.isSetPrice())
|
||||
sOrders.setPrice(BigDecimal.valueOf(executionReport.getPrice().getValue()));
|
||||
if (executionReport.isSetOrderQty())
|
||||
sOrders.setQty(BigDecimal.valueOf(executionReport.getOrderQty().getValue()));
|
||||
if (executionReport.isSetAccount())
|
||||
sOrders.setAccount(executionReport.getAccount().getValue());
|
||||
if (executionReport.isSetSettlType())
|
||||
sOrders.setSettleCode(executionReport.getSettlType().getValue());
|
||||
if (executionReport.isSetCurrency())
|
||||
sOrders.setPriceCurrency(executionReport.getCurrency().getValue());
|
||||
if (executionReport.isSetSecurityID())
|
||||
sOrders.setSecCode(executionReport.getSecurityID().getValue());
|
||||
if (executionReport.isSetPrice())
|
||||
sOrders.setPrice(BigDecimal.valueOf(executionReport.getPrice().getValue()));
|
||||
if (executionReport.isSetOrderQty())
|
||||
sOrders.setQty(BigDecimal.valueOf(executionReport.getOrderQty().getValue()));
|
||||
if (executionReport.isSetAccount())
|
||||
sOrders.setAccount(executionReport.getAccount().getValue());
|
||||
if (executionReport.isSetSettlType())
|
||||
sOrders.setSettleCode(executionReport.getSettlType().getValue());
|
||||
if (executionReport.isSetCurrency())
|
||||
sOrders.setPriceCurrency(executionReport.getCurrency().getValue());
|
||||
|
||||
sOrders.setState(String.valueOf(ordStatus.getValue()));
|
||||
if (ordStatus.valueEquals(OrdStatus.NEW)) {
|
||||
sOrders.setOrderDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
} else if (ordStatus.valueEquals(OrdStatus.CANCELED)) {
|
||||
sOrders.setWithdrawDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
}
|
||||
sOrders.setCreated(Instant.now());
|
||||
sOrdersImdg.insert(sOrders);
|
||||
} else {
|
||||
sOrders.setState(String.valueOf(ordStatus.getValue()));
|
||||
if (ordStatus.valueEquals(OrdStatus.NEW)) {
|
||||
sOrders.setOrderDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
} else if (ordStatus.valueEquals(OrdStatus.CANCELED)) {
|
||||
sOrders.setWithdrawDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
}
|
||||
|
||||
sOrders.setUpdated(Instant.now());
|
||||
sOrdersImdg.update(sOrders);
|
||||
sOrders.setState(String.valueOf(ordStatus.getValue()));
|
||||
if (ordStatus.valueEquals(OrdStatus.NEW)) {
|
||||
sOrders.setOrderDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
} else if (ordStatus.valueEquals(OrdStatus.CANCELED)) {
|
||||
sOrders.setWithdrawDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
}
|
||||
sOrders.setCreated(Instant.now());
|
||||
sOrdersImdg.insert(sOrders);
|
||||
} else {
|
||||
sOrders.setState(String.valueOf(ordStatus.getValue()));
|
||||
if (ordStatus.valueEquals(OrdStatus.NEW)) {
|
||||
sOrders.setOrderDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
} else if (ordStatus.valueEquals(OrdStatus.CANCELED)) {
|
||||
sOrders.setWithdrawDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC));
|
||||
}
|
||||
|
||||
sOrders.setUpdated(Instant.now());
|
||||
sOrdersImdg.update(sOrders);
|
||||
}
|
||||
|
||||
//send message to df for update orderCurrency status
|
||||
OrderCurrencyStatusUpdateRequest updateRequest = new OrderCurrencyStatusUpdateRequest();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue