etreschenkov 2026-04-22 13:20:54 +03:00
parent 5b94202c1a
commit 145f4e97d6
2 changed files with 11 additions and 3 deletions

View file

@ -358,19 +358,24 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
continue; continue;
} }
orderCurrency.setStatus(status.getKey()); orderCurrency.setStatus(status.getKey());
orderCurrency.setUpdated(Instant.now());
orderCurrencyImdg.update(orderCurrency); orderCurrencyImdg.update(orderCurrency);
} }
} }
private void updateByFix(BaseRequest<OrderCurrencyStatusUpdateRequest> req) { private void updateByFix(BaseRequest<OrderCurrencyStatusUpdateRequest> req) {
OrderCurrencyStatusUpdateRequest payload = req.getRequestPayload(); OrderCurrencyStatusUpdateRequest payload = req.getRequestPayload();
for (Long orderId : payload.getIds()) { for (Long orderId : payload.getIds()) {
SOrders sOrder = sOrdersImdg.getSingleObjectByID(orderId); SOrders sOrder = sOrdersImdg.getSingleObjectByPredicate(
sOrdersImdg.predicateBuilder().equals("orderNum", orderId)
);
OrderCurrency orderCurrency = orderCurrencyImdg.getSingleObjectByID(orderId); OrderCurrency orderCurrency = orderCurrencyImdg.getSingleObjectByID(orderId);
OrderStatus status = resolveStatusByFixState(sOrder.getState()); OrderStatus status = resolveStatusByFixState(sOrder.getState());
if (status == null) { if (status == null) {
continue; continue;
} }
orderCurrency.setStatus(status.getKey()); orderCurrency.setStatus(status.getKey());
orderCurrency.setUpdated(Instant.now());
// orderCurrency.setUpdated(sOrder.getTradeDate());//todo
orderCurrencyImdg.update(orderCurrency); orderCurrencyImdg.update(orderCurrency);
} }
} }

View file

@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
import quickfix.*; import quickfix.*;
import quickfix.field.*; import quickfix.field.*;
import quickfix.fix44.ExecutionReport; import quickfix.fix44.ExecutionReport;
import quickfix.fix44.MessageCracker;
import quickfix.fix44.NewOrderSingle; import quickfix.fix44.NewOrderSingle;
import ru.clearing.classes.statics.data.misc.OrderCurrency; import ru.clearing.classes.statics.data.misc.OrderCurrency;
import ru.clearing.classes.statics.data.misc.SOrders; import ru.clearing.classes.statics.data.misc.SOrders;
@ -105,9 +106,10 @@ public class Application extends MessageCracker implements quickfix.Application,
@Override @Override
public void fromApp(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType { public void fromApp(Message message, SessionID sessionID) throws FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType {
log.trace("fromApp {}, [{}]: {}", sessionID, message.getClass(), message); 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(); ImdgTransaction transaction = imdgProvider.newTransaction();
transaction.beginTransaction(); transaction.beginTransaction();
try { try {
@ -149,6 +151,7 @@ public class Application extends MessageCracker implements quickfix.Application,
sOrders.setAccount(account.getValue()); sOrders.setAccount(account.getValue());
sOrders.setSettleCode(settlType.getValue()); sOrders.setSettleCode(settlType.getValue());
sOrders.setPriceCurrency(currency.getValue()); sOrders.setPriceCurrency(currency.getValue());
sOrders.setState(String.valueOf(ordStatus.getValue()));
if (ordStatus.valueEquals(OrdStatus.NEW)) { if (ordStatus.valueEquals(OrdStatus.NEW)) {
sOrders.setOrderDateTime(transactTime.getValue().toInstant(ZoneOffset.UTC)); 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 //send message to df for update orderCurrency status
OrderCurrencyStatusUpdateRequest updateRequest = new OrderCurrencyStatusUpdateRequest(); OrderCurrencyStatusUpdateRequest updateRequest = new OrderCurrencyStatusUpdateRequest();
updateRequest.addId(sOrders.getId()); updateRequest.addId(orderNum);
kafkaSender.sendRequestToQueue(Consts.ORDER_CURRENCY_STATUS_UPDATE_FIX, updateRequest); kafkaSender.sendRequestToQueue(Consts.ORDER_CURRENCY_STATUS_UPDATE_FIX, updateRequest);
} }
} }