Merge branch 'dev' into spring-state-machine-template-v2

This commit is contained in:
ialbert 2025-06-30 14:49:48 +03:00
commit a4ed85b2e2
2 changed files with 8 additions and 13 deletions

View file

@ -22,21 +22,17 @@ public record ExecUploadKey(LocalDate tradeDate, Long exchangeExecutionId, Strin
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false; if (!(o instanceof ExecUploadKey that)) return false;
ExecUploadKey that = (ExecUploadKey) o; return Objects.equals(side, that.side) && Objects.equals(market, that.market) && Objects.equals(tradeDate, that.tradeDate) && Objects.equals(exchangeExecutionId, that.exchangeExecutionId);
if (!Objects.equals(tradeDate, that.tradeDate)) return false;
if (!Objects.equals(exchangeExecutionId, that.exchangeExecutionId))
return false;
return Objects.equals(side, that.side);
} }
@Override @Override
public int hashCode() { public int hashCode() {
int result = tradeDate != null ? tradeDate.hashCode() : 0; int result = Objects.hashCode(tradeDate);
result = 31 * result + (exchangeExecutionId != null ? exchangeExecutionId.hashCode() : 0); result = 31 * result + Objects.hashCode(exchangeExecutionId);
result = 31 * result + (side != null ? side.hashCode() : 0); result = 31 * result + Objects.hashCode(market);
result = 31 * result + Objects.hashCode(side);
return result; return result;
} }
} }

View file

@ -42,8 +42,7 @@ import ru.spcex.clearing.session.stage.StageResult;
import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.Task;
import ru.spcex.clearing.session.stage.TaskType; import ru.spcex.clearing.session.stage.TaskType;
import ru.spcex.clearing.session.stage.task.RequirementsAndObligationCreationPayload; import ru.spcex.clearing.session.stage.task.RequirementsAndObligationCreationPayload;
import static ru.spcex.clearing.util.ComparatorUtil.execIdComparator; import static ru.spcex.clearing.util.ComparatorUtil.*;
import static ru.spcex.clearing.util.ComparatorUtil.tradeTimeComparator;
import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.classes.base.interfaces.ExecutionType;
import ru.spcex.platform.enumeration.ISide; import ru.spcex.platform.enumeration.ISide;
import ru.spcex.platform.enumeration.MoneyFlowSide; import ru.spcex.platform.enumeration.MoneyFlowSide;
@ -206,7 +205,7 @@ public class RequirementsAndObligationCreation implements ISessionStage {
protected StageResult<?> createRegisters(List<ExecutionCommon> data, Long sessionId, Map<Long, Registry> rgsStorage) { protected StageResult<?> createRegisters(List<ExecutionCommon> data, Long sessionId, Map<Long, Registry> rgsStorage) {
this.ckTcr = null; this.ckTcr = null;
data.sort(tradeTimeComparator.thenComparing(execIdComparator)); data.sort(tradeTimeComparator.thenComparing(execIdComparator).thenComparing(execMarketComparator));
Map<Long, Registry> newRgss = rgsStorage != null ? rgsStorage : storageMap(data); Map<Long, Registry> newRgss = rgsStorage != null ? rgsStorage : storageMap(data);
//см. описание к #matchExecutions //см. описание к #matchExecutions
for (int i = 0; i < data.size(); ) { for (int i = 0; i < data.size(); ) {