обработка SDF57 проставление баланса при создании DMAU
проставление SessionType на шаге включения в пул апдейт статуса DM*T(clnr) в fail/manage
This commit is contained in:
parent
cb03a62265
commit
79e1867e7f
3 changed files with 21 additions and 5 deletions
|
|
@ -318,7 +318,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
searchResult.getCompany().getId());
|
searchResult.getCompany().getId());
|
||||||
createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, searchResult.getCompany(), searchResult.getAccount()));
|
createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, searchResult.getCompany(), searchResult.getAccount()));
|
||||||
} else {
|
} else {
|
||||||
log.debug("stmt.id={} comment='{}' error: {}. Creating DMAU registry",
|
log.debug("stmt.id={} comment='{}' error: {}. Operating through DMAU registry",
|
||||||
stmt.getId(),
|
stmt.getId(),
|
||||||
stmt.getComment(),
|
stmt.getComment(),
|
||||||
messageResolver.resolve(searchResult.getError()));
|
messageResolver.resolve(searchResult.getError()));
|
||||||
|
|
@ -341,6 +341,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
.build();
|
.build();
|
||||||
newDmau.setRegistryUnit(RegistryUnit.U.getKey());
|
newDmau.setRegistryUnit(RegistryUnit.U.getKey());
|
||||||
newDmau.setRegistryCode(RegistryUtil.clearingCode(newDmau));
|
newDmau.setRegistryCode(RegistryUtil.clearingCode(newDmau));
|
||||||
|
newDmau.setBalance(safeBD(stmt.getAmount()));
|
||||||
registryImdg.insert(newDmau);
|
registryImdg.insert(newDmau);
|
||||||
log.debug("stmt.id={} created DMAU.id={}", stmt.getId(), newDmau.getId());
|
log.debug("stmt.id={} created DMAU.id={}", stmt.getId(), newDmau.getId());
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.clearing.classes.statics.data.misc.Session;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
|
|
@ -19,12 +20,10 @@ import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -36,6 +35,7 @@ public class InclusionObligations implements ISessionStage {
|
||||||
private ImdgProvider imdgProvider;
|
private ImdgProvider imdgProvider;
|
||||||
private ImdgId idGenerator;
|
private ImdgId idGenerator;
|
||||||
private Imdg<Registry> registryImdg;
|
private Imdg<Registry> registryImdg;
|
||||||
|
private Imdg<Session> sessionImdg;
|
||||||
private KafkaSender kafkaSender;
|
private KafkaSender kafkaSender;
|
||||||
private final List<ImdgPredicate> registryConditions = new ArrayList<>();
|
private final List<ImdgPredicate> registryConditions = new ArrayList<>();
|
||||||
private SessionType sessionType;
|
private SessionType sessionType;
|
||||||
|
|
@ -46,6 +46,7 @@ public class InclusionObligations implements ISessionStage {
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
|
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||||
this.rgsPb = registryImdg.predicateBuilder();
|
this.rgsPb = registryImdg.predicateBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -110,6 +111,7 @@ public class InclusionObligations implements ISessionStage {
|
||||||
for (Registry registry : entrySet.getValue()) {
|
for (Registry registry : entrySet.getValue()) {
|
||||||
registry.setRegistryStatus("POOL");
|
registry.setRegistryStatus("POOL");
|
||||||
registry.setSessionId(sessionId);
|
registry.setSessionId(sessionId);
|
||||||
|
obtainSessionType(sessionId).ifPresent(st -> registry.setSessionType(st.getKey()));
|
||||||
registryImdg.update(registry);
|
registryImdg.update(registry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -117,6 +119,18 @@ public class InclusionObligations implements ISessionStage {
|
||||||
return new StageResult(null, true);
|
return new StageResult(null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Optional<SessionType> obtainSessionType(Long sessionId) {
|
||||||
|
if (this.sessionType != null) {
|
||||||
|
return Optional.of(this.sessionType);
|
||||||
|
}
|
||||||
|
if (sessionId == null) {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
Session session = sessionImdg.getSingleObjectByID(sessionId);
|
||||||
|
SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, session.getSessionType());
|
||||||
|
return Optional.ofNullable(sessionType);
|
||||||
|
}
|
||||||
|
|
||||||
public void setSessionType(SessionType sessionType) {
|
public void setSessionType(SessionType sessionType) {
|
||||||
this.sessionType = sessionType;
|
this.sessionType = sessionType;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
||||||
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
|
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
|
||||||
} else {
|
} else {
|
||||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
|
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
|
||||||
|
updateStatus(dmtClnr.get(), registryStatusFailed());
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue