clearing-service http://jira.mfd.msk:8088/browse/CLS-290 обработчик для шага 6 refactoring
This commit is contained in:
parent
d0a74989a4
commit
e45b073290
2 changed files with 14 additions and 13 deletions
|
|
@ -17,8 +17,8 @@ public enum TaskType {
|
|||
InclusionToPool,
|
||||
|
||||
/**
|
||||
* Step 6
|
||||
* Step 6: forming Registry on Obligations and Settlement requirements
|
||||
*/
|
||||
CreateRegistryOnObligationsAndSettlementRequirements,
|
||||
FormingRegistersOnOS,
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,18 +4,13 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
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.task.DealsPreparePayload;
|
||||
import ru.spcex.clearing.session.stage.task.RegistryOnObligationsAndSettlementRequirementsPayload;
|
||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||
import ru.spcex.platform.classes.base.interfaces.IExecution;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithExchangeExecutionId;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
|
|
@ -29,14 +24,14 @@ import java.util.ArrayList;
|
|||
import java.util.Collection;
|
||||
|
||||
@Service
|
||||
public class CreateRegistryOnObligationsAndSettlementRequirements implements ISessionStage {
|
||||
public class FormingRegistersOnOS implements ISessionStage {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
private final ImdgId idSequence;
|
||||
private final Imdg<Registry> registryImdg;
|
||||
|
||||
@Autowired
|
||||
public CreateRegistryOnObligationsAndSettlementRequirements(ImdgProvider imdgProvider) {
|
||||
public FormingRegistersOnOS(ImdgProvider imdgProvider) {
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||
|
||||
|
|
@ -46,7 +41,7 @@ public class CreateRegistryOnObligationsAndSettlementRequirements implements ISe
|
|||
public StageResult<?> submit(Task<?> task) {
|
||||
RegistryOnObligationsAndSettlementRequirementsPayload payload = (RegistryOnObligationsAndSettlementRequirementsPayload) task.getData();
|
||||
switch (task.getTaskType()) {
|
||||
case CreateRegistryOnObligationsAndSettlementRequirements -> {
|
||||
case FormingRegistersOnOS -> {
|
||||
return createRegistryOnObligationsAndSettlementRequirements(payload.getSessionId());
|
||||
}
|
||||
default -> {
|
||||
|
|
@ -55,23 +50,29 @@ public class CreateRegistryOnObligationsAndSettlementRequirements implements ISe
|
|||
}
|
||||
}
|
||||
|
||||
private Collection<Registry> selectRegistry(Long sessionId) {
|
||||
/**
|
||||
* Select Registry by: registryCode = [O/T][S/M][*][T] & registryStatus=OK
|
||||
*
|
||||
* @param sessionId
|
||||
* @return
|
||||
*/
|
||||
protected Collection<Registry> selectRegistry(Long sessionId) {
|
||||
String registrySQL = "sessionId = " + sessionId;
|
||||
registrySQL += " and (registryDesignation=" + RegistryDesignation.O.getKey() + " or registryDesignation=" + RegistryDesignation.T.getKey() + ")";
|
||||
registrySQL += " and (registryInstrumentType=" + RegistryInstrumentType.S.getKey() + " or registryInstrumentType=" + RegistryInstrumentType.M.getKey() + ")";
|
||||
registrySQL += " and (registryUnit=" + RegistryUnit.T.getKey() + ")";
|
||||
registrySQL += " and registryStatus=" + RegistryStatus.OK.getKey() + ")";
|
||||
// registryCode = [O/T][S/M][*][T] & registryStatus=OK
|
||||
Collection<Registry> result = registryImdg.getCollectionObjectsBySQL(registrySQL);
|
||||
log.trace("Selected {} registry's by sql: {}", result.size(), registrySQL);
|
||||
return result;
|
||||
}
|
||||
|
||||
private StageResult<?> createRegistryOnObligationsAndSettlementRequirements(Long sessionId) {
|
||||
protected StageResult<?> createRegistryOnObligationsAndSettlementRequirements(Long sessionId) {
|
||||
Collection<Registry> forRegistries = selectRegistry(sessionId);
|
||||
ArrayList<Registry> newRegistries = new ArrayList<>();
|
||||
|
||||
//todo oreder by обрабатываться группами по полю registry.groupId
|
||||
//todo при перезапуске после незапланированного завершения стадии: надо ли проверять уже созданные регистры и не создавать дубликаты?
|
||||
|
||||
for (Registry registry : forRegistries) {
|
||||
Registry newRegistry = createRegistryFor(registry);
|
||||
Loading…
Add table
Reference in a new issue