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 a6df06253..bc01e09d6 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,46 @@ package ru.spcex.clearing.fix.quickfix; +import java.math.BigDecimal; +import java.time.ZoneOffset; +import java.util.regex.Pattern; 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.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,11 +54,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.ZoneOffset; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - @Service public class Application extends MessageCracker implements quickfix.Application, InitializingBean, DisposableBean { private static final Logger log = LoggerFactory.getLogger(Application.class); @@ -113,18 +141,19 @@ public class Application extends MessageCracker implements quickfix.Application, ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); try { - if (executionReport.isSetField(OrderID.FIELD) && executionReport.isSetField(ExDestination.FIELD) && executionReport.isSetField(TransactTime.FIELD) && executionReport.isSetField(OrdStatus.FIELD)) { - OrderID orderId = executionReport.getOrderID(); + if (executionReport.isSetField(ClOrdID.FIELD) && executionReport.isSetField(ExDestination.FIELD) && executionReport.isSetField(TransactTime.FIELD) && executionReport.isSetField(OrdStatus.FIELD)) { +// OrderID orderId = executionReport.getOrderID(); ExDestination exDestination = (ExDestination) executionReport.getField(new ExDestination()); TransactTime transactTime = executionReport.getTransactTime(); 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()) { +// 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(matcher.group(3)); + Long orderNum = Long.parseLong(clOrdID.getValue()); Imdg sOrdersImdg = transaction.getImdg(IMDGDistributedNames.Map_SOrders, SOrders.class); SOrders sOrders = sOrdersImdg.getSingleObjectByPredicate(sOrdersImdg.predicateBuilder().and( @@ -175,7 +204,7 @@ public class Application extends MessageCracker implements quickfix.Application, updateRequest.addId(orderNum); kafkaSender.sendRequestToQueue(Consts.ORDER_CURRENCY_STATUS_UPDATE_FIX, updateRequest); } - } +// } transaction.commitTransaction(); } catch (Exception e) { log.error(executionReport.toString(), e);