группировка registry с учетом market и groupId для шага 10 активной сессии
This commit is contained in:
parent
aa38fa986a
commit
1bb489e3cb
1 changed files with 9 additions and 5 deletions
|
|
@ -24,6 +24,7 @@ import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
|||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf05;
|
||||
import ru.spcex.clearing.component.GroupRgsKey;
|
||||
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
|
@ -135,12 +136,13 @@ public class FinishingSession implements ISessionStage {
|
|||
log.error("Session id={} not found. Can not update Execution's.", sessionId);
|
||||
} else {
|
||||
Collection<Registry> oRegs = findORegistryBySessionId(allLiabilitiesAndOKClaims);
|
||||
Map<Long, RegistryStatus> obligationStatusByGroupId;
|
||||
Map<GroupRgsKey, RegistryStatus> obligationStatusByGroupId;
|
||||
obligationStatusByGroupId = oRegs.stream()
|
||||
.map(rgs -> new Pair<>(rgs.getGroupId(), getEnumByKey(RegistryStatus.class, rgs.getRegistryStatus())))
|
||||
.map(rgs -> new Pair<>(new GroupRgsKey(rgs.getGroupId(), rgs.getMarket()),
|
||||
getEnumByKey(RegistryStatus.class, rgs.getRegistryStatus())))
|
||||
.filter(pair -> pair.getSecond() != null)
|
||||
.collect(Collectors.toMap(Pair::getFirst, Pair::getSecond, (o1, o2) -> o1));
|
||||
Function<Long, CoverageStatus> statusByExchangeId = id-> {
|
||||
Function<GroupRgsKey, CoverageStatus> statusByExchangeId = id-> {
|
||||
RegistryStatus obligationStatus = obligationStatusByGroupId.get(id);
|
||||
if (obligationStatus == null) return null;
|
||||
return switch (obligationStatus) {
|
||||
|
|
@ -164,7 +166,8 @@ public class FinishingSession implements ISessionStage {
|
|||
Collection<ExecutionDeposit> executions = findExecutionDepositBySessionId(sessionId);
|
||||
log.trace("loaded {} ExecutionDeposits for sessionId {}", executions.size(), sessionId);
|
||||
for (ExecutionDeposit execution : executions) {
|
||||
CoverageStatus toStatus = statusByExchangeId.apply(execution.getExchangeExecutionId());
|
||||
CoverageStatus toStatus = statusByExchangeId.apply(
|
||||
new GroupRgsKey(execution.getExchangeExecutionId(), execution.getMarket()));
|
||||
if (toStatus == null) {
|
||||
log.trace("CoverageStatus not defined for execution.id={}", execution.getId());
|
||||
continue;
|
||||
|
|
@ -194,7 +197,8 @@ public class FinishingSession implements ISessionStage {
|
|||
Map<Long, ExecutionFond> execFond = new HashMap<>();
|
||||
log.trace("loaded {} Executions for sessionId {}", executions.size(), sessionId);
|
||||
for (ExecutionCommon execution : executions) {
|
||||
CoverageStatus toStatus = statusByExchangeId.apply(execution.getExchangeExecutionId());
|
||||
CoverageStatus toStatus = statusByExchangeId.apply(
|
||||
new GroupRgsKey(execution.getExchangeExecutionId(), execution.getMarket()));
|
||||
if (toStatus == null) {
|
||||
log.trace("CoverageStatus not defined for execution.id={}", execution.getId());
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue