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 c86009742..046cde7eb 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 @@ -1,13 +1,47 @@ package ru.spcex.clearing.fix.quickfix; +import java.math.BigDecimal; +import java.time.Instant; +import java.time.ZoneOffset; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import quickfix.*; -import quickfix.field.*; +import quickfix.ConfigError; +import quickfix.DecimalField; +import quickfix.DoNotSend; +import quickfix.FieldNotFound; +import quickfix.IncorrectDataFormat; +import quickfix.IncorrectTagValue; +import quickfix.LogFactory; +import quickfix.Message; +import quickfix.MessageFactory; +import quickfix.MessageStoreFactory; +import quickfix.RejectLogon; +import quickfix.Session; +import quickfix.SessionID; +import quickfix.SessionNotFound; +import quickfix.SessionSettings; +import quickfix.SocketInitiator; +import quickfix.StringField; +import quickfix.UnsupportedMessageType; +import quickfix.field.Account; +import quickfix.field.ClOrdID; +import quickfix.field.ContraBroker; +import quickfix.field.ExDestination; +import quickfix.field.HandlInst; +import quickfix.field.OrdStatus; +import quickfix.field.OrdType; +import quickfix.field.OrderQty; +import quickfix.field.Price; +import quickfix.field.SecurityID; +import quickfix.field.SecurityIDSource; +import quickfix.field.SettlType; +import quickfix.field.Side; +import quickfix.field.Text; +import quickfix.field.TransactTime; import quickfix.fix44.ExecutionReport; import quickfix.fix44.MessageCracker; import quickfix.fix44.NewOrderSingle; @@ -21,10 +55,6 @@ import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.ZoneOffset; - @Service public class Application extends MessageCracker implements quickfix.Application, InitializingBean, DisposableBean { private static final Logger log = LoggerFactory.getLogger(Application.class); @@ -112,13 +142,13 @@ public class Application extends MessageCracker implements quickfix.Application, ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); try { + Long orderNum = null; if (executionReport.isSetField(ClOrdID.FIELD) && executionReport.isSetField(ExDestination.FIELD) && executionReport.isSetField(TransactTime.FIELD) && executionReport.isSetField(OrdStatus.FIELD)) { ExDestination exDestination = (ExDestination) executionReport.getField(new ExDestination()); TransactTime transactTime = executionReport.getTransactTime(); OrdStatus ordStatus = executionReport.getOrdStatus(); ClOrdID clOrdID = executionReport.getClOrdID(); - Long orderNum = null; try { orderNum = Long.parseLong(clOrdID.getValue()); } catch (NumberFormatException e) { @@ -172,14 +202,16 @@ public class Application extends MessageCracker implements quickfix.Application, sOrders.setUpdated(Instant.now()); sOrdersImdg.update(sOrders); } - - //send message to df for update orderCurrency status - OrderCurrencyStatusUpdateRequest updateRequest = new OrderCurrencyStatusUpdateRequest(); - updateRequest.addId(orderNum); - kafkaSender.sendRequestToQueue(Consts.ORDER_CURRENCY_STATUS_UPDATE_FIX, updateRequest); } } transaction.commitTransaction(); + + if (orderNum != null) { + //send message to df for update orderCurrency status + OrderCurrencyStatusUpdateRequest updateRequest = new OrderCurrencyStatusUpdateRequest(); + updateRequest.addId(orderNum); + kafkaSender.sendRequestToQueue(Consts.ORDER_CURRENCY_STATUS_UPDATE_FIX, updateRequest); + } } catch (Exception e) { log.error(executionReport.toString(), e); transaction.rollbackTransaction();