diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java index 37adad501..5cbac4d47 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/AnltSearcher.java @@ -116,7 +116,7 @@ public class AnltSearcher { return new AnltSearch(infoAcc, company, tcr, tcrList, currencyCode); } - private static final Pattern tcrPattern = Pattern.compile("(?:ТКР|TKR).*?([0-9A-Z-]{12})"); + private static final Pattern tcrPattern = Pattern.compile("(?:ТКР|TKR|TCR).*?([0-9A-Z-]{12})"); private static String getTkrCodeFromComment(String comment) { if (TextUtil.isEmpty(comment)) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java index 8d8fa8ab0..b84fd9561 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java @@ -1,7 +1,6 @@ package ru.spcex.clearing.session.stage.impl; import java.time.LocalDate; -import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -23,6 +22,8 @@ import ru.spcex.clearing.session.stage.ISessionStage; import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.TaskType; +import static ru.spcex.clearing.util.ComparatorUtil.execIdComparator; +import static ru.spcex.clearing.util.ComparatorUtil.tradeTimeComparator; import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.enumeration.ISide; import ru.spcex.platform.enumeration.MoneyFlowSide; @@ -66,7 +67,7 @@ public class RequirementsAndObligationCreation implements ISessionStage { } protected StageResult createRegisters(List data) { - data.sort(Comparator.comparing(ExecutionCommon::getExchangeExecutionId)); + data.sort(tradeTimeComparator.thenComparing(execIdComparator)); //см. описание к #matchExecutions for (int i = 0; i < data.size(); ) { Pair matched = matchExecutions(data, i); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java index f21bfa922..af826fb1d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreationCompound.java @@ -2,7 +2,6 @@ package ru.spcex.clearing.session.stage.impl; import java.util.ArrayList; import java.util.Arrays; -import java.util.Comparator; import java.util.List; import java.util.Objects; import java.util.stream.Stream; @@ -17,6 +16,8 @@ import ru.spcex.clearing.session.stage.StageResult; import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.TaskType; import ru.spcex.clearing.session.stage.task.RequirementsAndObligationCreationCompoundPayload; +import static ru.spcex.clearing.util.ComparatorUtil.execIdComparator; +import static ru.spcex.clearing.util.ComparatorUtil.tradeTimeComparator; import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.collection.Pair; @@ -28,12 +29,6 @@ import ru.spcex.platform.utils.collection.Pair; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class RequirementsAndObligationCreationCompound extends RequirementsAndObligationCreation { private final Logger log = LoggerFactory.getLogger(getClass()); - private static final Comparator tradeTimeComparator - = Comparator.comparing(ExecutionCommon::getExchangeExecutionTime); - - private static final Comparator execIdComparator - = Comparator.comparing(ExecutionCommon::getExchangeExecutionId); - @Autowired public RequirementsAndObligationCreationCompound(ImdgProvider imdgProvider) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java new file mode 100644 index 000000000..a681d542f --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/util/ComparatorUtil.java @@ -0,0 +1,13 @@ +package ru.spcex.clearing.util; + +import java.util.Comparator; +import ru.clearing.classes.statics.data.execution.ExecutionCommon; + +public class ComparatorUtil { + public static final Comparator tradeTimeComparator + = Comparator.comparing(ExecutionCommon::getExchangeExecutionTime); + + public static final Comparator execIdComparator + = Comparator.comparing(ExecutionCommon::getExchangeExecutionId); + +}