CLRD статус регистров для всех сессий

This commit is contained in:
ialbert 2023-08-23 17:04:25 +03:00
parent bdc4f3fb67
commit 523d5b4bc1
2 changed files with 29 additions and 0 deletions

View file

@ -20,6 +20,7 @@ import ru.spcex.clearing.session.stage.StageResult;
import ru.spcex.clearing.session.stage.Task;
import ru.spcex.clearing.session.stage.task.FinishingSessionPayload;
import ru.spcex.platform.enumeration.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.RegistryTradingParams;
import ru.spcex.platform.enumeration.Section;
import ru.spcex.platform.imdg.api.Imdg;
@ -30,6 +31,7 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import java.time.Instant;
import java.util.Collection;
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
@ -77,6 +79,14 @@ public class FinishingSession implements ISessionStage {
}
protected StageResult<?> finishingSession(Long sessionId, String pr) {
Instant now = Instant.now();
//установка CLRD для обработанных регистров
Collection<Registry> claimsAndLiabilities = selectClaimsAndLiabilities(sessionId);
claimsAndLiabilities.forEach(rgs -> {
rgs.setRegistryStatus(RegistryStatus.CLRD.getKey());
rgs.setUpdated(now);
registryImdg.update(rgs);
});
// 2. Отправка сообщений
Collection<Registry> forRegistries = selectRegistry(sessionId);
log.debug("Found {} registries for sessionId={}", forRegistries.size(), sessionId);
@ -145,4 +155,22 @@ public class FinishingSession implements ISessionStage {
log.trace("Selected {} registry's by sql: {}", result.size(), condition);
return result;
}
protected Collection<Registry> selectClaimsAndLiabilities(Long sessionId) {
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
ImdgPredicate prdct = pb.and(
pb.equals("sessionId", sessionId),
pb.equals("registryStatus", RegistryStatus.OK.getKey()),
pb.or(
pb.equals("registryDesignation", RegistryDesignation.O.getKey()),
pb.equals("registryDesignation", RegistryDesignation.T.getKey()),
pb.equals("registryDesignation", RegistryDesignation.C.getKey()),
pb.equals("registryDesignation", RegistryDesignation.L.getKey())
)
);
log.debug("searching claims and liabilities by predicate: {}...", prdct);
Collection<Registry> result = registryImdg.getCollectionObjectsByPredicate(prdct);
log.debug("found {} claims and liabilities", result.size());
return result;
}
}

View file

@ -4,6 +4,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
public enum RegistryStatus implements IEnumKey {
OK("OK"),
CLRD("CLRD"),
PROC("PROC"),
NACK("NACK"),
NACC("NACC"),