diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java index bff55340b..53370a842 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java @@ -358,19 +358,24 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing continue; } orderCurrency.setStatus(status.getKey()); + orderCurrency.setUpdated(Instant.now()); orderCurrencyImdg.update(orderCurrency); } } private void updateByFix(BaseRequest req) { OrderCurrencyStatusUpdateRequest payload = req.getRequestPayload(); for (Long orderId : payload.getIds()) { - SOrders sOrder = sOrdersImdg.getSingleObjectByID(orderId); + SOrders sOrder = sOrdersImdg.getSingleObjectByPredicate( + sOrdersImdg.predicateBuilder().equals("orderNum", orderId) + ); OrderCurrency orderCurrency = orderCurrencyImdg.getSingleObjectByID(orderId); OrderStatus status = resolveStatusByFixState(sOrder.getState()); if (status == null) { continue; } orderCurrency.setStatus(status.getKey()); + orderCurrency.setUpdated(Instant.now()); +// orderCurrency.setUpdated(sOrder.getTradeDate());//todo orderCurrencyImdg.update(orderCurrency); } } diff --git a/clearing-parent/fix-service/src/main/java/ru/spcex/clearing/fix/quickfix/Application.java b/clearing-parent/fix-service/src/main/java/ru/spcex/clearing/fix/quickfix/Application.java index f2d81baf2..02445094e 100644 --- a/clearing-parent/fix-service/src/main/java/ru/spcex/clearing/fix/quickfix/Application.java +++ b/clearing-parent/fix-service/src/main/java/ru/spcex/clearing/fix/quickfix/Application.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import quickfix.*; import quickfix.field.*; import quickfix.fix44.ExecutionReport; +import quickfix.fix44.MessageCracker; import quickfix.fix44.NewOrderSingle; import ru.clearing.classes.statics.data.misc.OrderCurrency; import ru.clearing.classes.statics.data.misc.SOrders; @@ -105,9 +106,10 @@ public class Application extends MessageCracker implements quickfix.Application, @Override public void fromApp(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType { log.trace("fromApp {}, [{}]: {}", sessionID, message.getClass(), message); + crack(message, sessionID); } - public void onMessage(ExecutionReport executionReport) { + public void onMessage(ExecutionReport executionReport, SessionID sessionID) { ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); try { @@ -149,6 +151,7 @@ public class Application extends MessageCracker implements quickfix.Application, sOrders.setAccount(account.getValue()); sOrders.setSettleCode(settlType.getValue()); sOrders.setPriceCurrency(currency.getValue()); + sOrders.setState(String.valueOf(ordStatus.getValue())); if (ordStatus.valueEquals(OrdStatus.NEW)) { sOrders.setOrderDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC)); @@ -169,7 +172,7 @@ public class Application extends MessageCracker implements quickfix.Application, //send message to df for update orderCurrency status OrderCurrencyStatusUpdateRequest updateRequest = new OrderCurrencyStatusUpdateRequest(); - updateRequest.addId(sOrders.getId()); + updateRequest.addId(orderNum); kafkaSender.sendRequestToQueue(Consts.ORDER_CURRENCY_STATUS_UPDATE_FIX, updateRequest); } }