IPO0, FINL, MEDM
This commit is contained in:
parent
0e19218728
commit
99e98f6a28
12 changed files with 140 additions and 105 deletions
|
|
@ -121,11 +121,8 @@ public class Sdf04Executor extends AbstractExecutor<SDf04> {
|
|||
Optional<Registry> registryUnitF = registryManager.findRegByUnit(registry.getCompanyId(), registry.getAccountId(), registry.getContract(), registry, RegistryUnit.F);
|
||||
Optional<Registry> registryUnitT = registryManager.findRegByUnit(registry.getCompanyId(), registry.getAccountId(), registry.getContract(), registry, RegistryUnit.T);
|
||||
if (registryUnitF.isPresent() && registryUnitT.isPresent()) {
|
||||
registryUnitF.get().setBalance(registryUnitT.get().getBalance().subtract(registry.getBalance()));
|
||||
registryUnitF.get().setUpdated(now);
|
||||
registryImdg.update(registryUnitF.get());
|
||||
assets.process(registry, registryUnitT.get(), registryUnitF.get(), BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
registry.setUpdated(now);
|
||||
registryImdg.update(registry);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -28,7 +28,9 @@ import ru.spcex.clearing.service.LoggingService;
|
|||
import ru.spcex.clearing.service.builder.RegistryBuilder;
|
||||
import ru.spcex.clearing.service.integration.GatewayRequestCreator;
|
||||
import ru.spcex.clearing.service.model.Result;
|
||||
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
||||
import ru.spcex.clearing.service.registry.DmiService;
|
||||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
import ru.spcex.clearing.service.schedule.TradingTimeService;
|
||||
import ru.spcex.clearing.service.validation.ValidationStored;
|
||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||
|
|
@ -84,13 +86,14 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
private final DmiService dmiService;
|
||||
private final TradingTimeService timeService;
|
||||
private final KafkaSender kafka;
|
||||
private final AssetTBFProcessing assets;
|
||||
private final Pattern pattern = Pattern.compile("№.*");
|
||||
|
||||
public Sdf57Executor(@Qualifier("sdf57Validator") Function<SDf57, IValidator> sDf57Validator,
|
||||
LoggingService errorLogger,
|
||||
ImdgProvider imdgProvider,
|
||||
IMessageResolver errorResolver, AnltSearcher anltSearcher, IMessageResolver messageResolver, DmiService dmiService, TradingTimeService timeService,
|
||||
@Qualifier("kafkaSenderWithoutRequestInfo") KafkaSender kafka) {
|
||||
@Qualifier("kafkaSenderWithoutRequestInfo") KafkaSender kafka, AssetTBFProcessing assets) {
|
||||
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.sdf02Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf02, SDf02.class);
|
||||
|
|
@ -110,6 +113,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
this.dmiService = dmiService;
|
||||
this.timeService = timeService;
|
||||
this.kafka = kafka;
|
||||
this.assets = assets;
|
||||
}
|
||||
|
||||
//todo доделать контроль sdf01 и sdf57
|
||||
|
|
@ -206,23 +210,25 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
updateReg(stmt, rgs);
|
||||
//добавил создание если не найдены
|
||||
Registry registryUnitB = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.B).orElse(copyRegB(rgs));
|
||||
Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs, null)); //передаю null т.к. отнимется ниже по коду
|
||||
registryUnitF.setBalance(rgs.getBalance().subtract(registryUnitB.getBalance()));
|
||||
registryUnitF.setUpdated(Instant.now());
|
||||
Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs)); //передаю null т.к. отнимется ниже по коду
|
||||
// registryUnitF.setBalance(rgs.getBalance().subtract(registryUnitB.getBalance()));
|
||||
// registryUnitF.setUpdated(Instant.now());
|
||||
//registry F всегда меняется
|
||||
if (registryUnitF.getId() == null) {
|
||||
registryImdg.insert(registryUnitF);
|
||||
log.debug("stmt.id={}, new AM*F.id={}", stmt.getId(), registryUnitF.getId());
|
||||
} else {
|
||||
registryImdg.update(registryUnitF);
|
||||
log.debug("stmt.id={}, updated AM*F.id={}", stmt.getId(), registryUnitF.getId());
|
||||
}
|
||||
// else {
|
||||
// registryImdg.update(registryUnitF);
|
||||
// log.debug("stmt.id={}, updated AM*F.id={}", stmt.getId(), registryUnitF.getId());
|
||||
// }
|
||||
//нужно сохранить registry B только если его не было
|
||||
if (registryUnitB.getId() == null) {
|
||||
registryImdg.insert(registryUnitB);
|
||||
log.debug("stmt.id={}, new AM*B.id={}", stmt.getId(), registryUnitB.getId());
|
||||
}
|
||||
registryImdg.update(rgs);
|
||||
assets.process(registryUnitB, rgs, registryUnitF, BigDecimal.ZERO);
|
||||
log.debug("stmt.id={}, updated AM*T.id={}: balance {}/debit {}/ credit {}",
|
||||
stmt.getId(),
|
||||
rgs.getId(),
|
||||
|
|
@ -239,7 +245,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
.build();
|
||||
calcBalance(registry, stmt);
|
||||
Registry registryB = copyRegB(registry);
|
||||
Registry registryF = copyRegF(registry, registryB.getBalance());
|
||||
Registry registryF = copyRegF(registry);
|
||||
|
||||
registryImdg.insert(registry);
|
||||
registryImdg.insert(registryF);
|
||||
|
|
@ -412,24 +418,18 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
|
||||
private Registry copyRegB(Registry rgs) {
|
||||
Registry rgsB = rgs.clone();
|
||||
RegistryManager.zeroState(rgsB);
|
||||
rgsB.setRegistryUnit(RegistryUnit.B.getKey());
|
||||
rgsB.setRegistryCode(RegistryUtil.clearingCode(rgsB));
|
||||
rgsB.setBalance(BigDecimal.ZERO);
|
||||
rgsB.setDebit(BigDecimal.ZERO);
|
||||
rgsB.setCredit(BigDecimal.ZERO);
|
||||
rgsB.setDiffBalance(BigDecimal.ZERO);
|
||||
rgsB.setCheckBalance(BigDecimal.ZERO);
|
||||
return rgsB;
|
||||
}
|
||||
|
||||
private Registry copyRegF(Registry rgs, BigDecimal rgsBBalance) {
|
||||
private Registry copyRegF(Registry rgs) {
|
||||
Registry rgsF = rgs.clone();
|
||||
RegistryManager.zeroState(rgsF);
|
||||
rgsF.setRegistryUnit(RegistryUnit.F.getKey());
|
||||
rgsF.setRegistryCode(RegistryUtil.clearingCode(rgsF));
|
||||
rgsF.setBalance(safeBD(rgs.getBalance()).subtract(safeBD(rgsBBalance)));
|
||||
rgsF.setCredit(BigDecimal.ZERO);
|
||||
rgsF.setDiffBalance(BigDecimal.ZERO);
|
||||
rgsF.setCheckBalance(BigDecimal.ZERO);
|
||||
rgsF.setBalance(safeBD(rgs.getBalance()));
|
||||
return rgsF;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -183,6 +183,7 @@ public class RegistryManager {
|
|||
rgs.setCredit(BigDecimal.ZERO);
|
||||
rgs.setDiffBalance(BigDecimal.ZERO);
|
||||
rgs.setCheckBalance(BigDecimal.ZERO);
|
||||
rgs.setPlanBalance(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -139,15 +139,17 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean
|
|||
if (firstReviseMonitor != null && isMonitorPassed(firstReviseMonitor, req.getRequestPayload())) {
|
||||
firstReviseMonitor = null;
|
||||
firstPart();
|
||||
return;
|
||||
}
|
||||
if (afterPaymentsSdf4Monitor != null && isMonitorPassed(afterPaymentsSdf4Monitor, req.getRequestPayload())) {
|
||||
afterPaymentsSdf4Monitor = null;
|
||||
sendSdf56();
|
||||
}
|
||||
if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
|
||||
afterPaymentsReviseMonitor = null;
|
||||
finishPart();
|
||||
return;
|
||||
}
|
||||
//if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
|
||||
// afterPaymentsReviseMonitor = null;
|
||||
// finishPart();
|
||||
//}
|
||||
} catch (StageException e) {
|
||||
//already logged
|
||||
}
|
||||
|
|
@ -211,11 +213,13 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean
|
|||
paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDeals);
|
||||
}
|
||||
if (paymentResult.getStageResult().getPaymentInstructions().isEmpty()) {
|
||||
log.info("no payment instructions were created, sending SDF56");
|
||||
sendSdf56();
|
||||
log.info("no payment instructions were created");
|
||||
finishPart();
|
||||
} else {
|
||||
log.info("created {} PaymentInstructions, waiting for SDF04", paymentResult.getStageResult().getPaymentInstructions().size());
|
||||
this.afterPaymentsSdf4Monitor = SessionMonitorFactory.paymentsWereCreated(section());
|
||||
this.afterPaymentsSdf4Monitor = SessionMonitorFactory.waitStep7(section());
|
||||
log.info("created {} PaymentInstructions, waiting for {}",
|
||||
paymentResult.getStageResult().getPaymentInstructions().size(),
|
||||
this.afterPaymentsSdf4Monitor.allConditions());
|
||||
}
|
||||
} catch (StageException e) {
|
||||
//already logged
|
||||
|
|
|
|||
|
|
@ -133,15 +133,17 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ
|
|||
if (firstReviseMonitor != null && isMonitorPassed(firstReviseMonitor, req.getRequestPayload())) {
|
||||
firstReviseMonitor = null;
|
||||
firstPart();
|
||||
return;
|
||||
}
|
||||
if (afterPaymentsSdf4Monitor != null && isMonitorPassed(afterPaymentsSdf4Monitor, req.getRequestPayload())) {
|
||||
afterPaymentsSdf4Monitor = null;
|
||||
sendSdf56();
|
||||
}
|
||||
if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
|
||||
afterPaymentsReviseMonitor = null;
|
||||
finishPart();
|
||||
return;
|
||||
}
|
||||
//if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
|
||||
// afterPaymentsReviseMonitor = null;
|
||||
// finishPart();
|
||||
//}
|
||||
} catch (StageException e) {
|
||||
//already logged
|
||||
}
|
||||
|
|
@ -195,11 +197,13 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ
|
|||
paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDeals);
|
||||
}
|
||||
if (paymentResult.getStageResult().getPaymentInstructions().isEmpty()) {
|
||||
log.info("no payment instructions were created, sending SDF56");
|
||||
sendSdf56();
|
||||
log.info("no payment instructions were created");
|
||||
finishPart();
|
||||
} else {
|
||||
log.info("created {} PaymentInstructions, waiting for SDF04", paymentResult.getStageResult().getPaymentInstructions().size());
|
||||
this.afterPaymentsSdf4Monitor = SessionMonitorFactory.paymentsWereCreated(section());
|
||||
this.afterPaymentsSdf4Monitor = SessionMonitorFactory.waitStep7(section());
|
||||
log.info("created {} PaymentInstructions, waiting for {}",
|
||||
paymentResult.getStageResult().getPaymentInstructions().size(),
|
||||
this.afterPaymentsSdf4Monitor.allConditions());
|
||||
}
|
||||
} catch (StageException e) {
|
||||
//already logged
|
||||
|
|
|
|||
|
|
@ -127,15 +127,17 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali
|
|||
if (firstReviseMonitor != null && isMonitorPassed(firstReviseMonitor, req.getRequestPayload())) {
|
||||
firstReviseMonitor = null;
|
||||
firstPart();
|
||||
return;
|
||||
}
|
||||
if (afterPaymentsSdf4And13Monitor != null && isMonitorPassed(afterPaymentsSdf4And13Monitor, req.getRequestPayload())) {
|
||||
afterPaymentsSdf4And13Monitor = null;
|
||||
sendSdf56();
|
||||
}
|
||||
if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
|
||||
afterPaymentsReviseMonitor = null;
|
||||
finishPart();
|
||||
return;
|
||||
}
|
||||
//if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
|
||||
// afterPaymentsReviseMonitor = null;
|
||||
// finishPart();
|
||||
//}
|
||||
} catch (StageException e) {
|
||||
//already logged
|
||||
}
|
||||
|
|
@ -187,11 +189,13 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali
|
|||
paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction);
|
||||
}
|
||||
if (paymentResult.getStageResult().isEmpty()) {
|
||||
log.info("no payment instructions were created, sending SDF56");
|
||||
sendSdf56();
|
||||
log.info("no payment instructions were created");
|
||||
finishPart();
|
||||
} else {
|
||||
log.info("created {} PaymentInstructions, waiting for SDF04/SDF13", paymentResult.getStageResult().size());
|
||||
this.afterPaymentsSdf4And13Monitor = SessionMonitorFactory.paymentsWereCreated(section());
|
||||
this.afterPaymentsSdf4And13Monitor = SessionMonitorFactory.waitStep7(section());
|
||||
log.info("created {} PaymentInstructions, waiting for {}",
|
||||
paymentResult.getStageResult().size(),
|
||||
this.afterPaymentsSdf4And13Monitor.allConditions());
|
||||
}
|
||||
} catch (StageException e) {
|
||||
//already logged
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
|||
import ru.spcex.clearing.service.SpecifUtil;
|
||||
import ru.spcex.clearing.service.builder.PaymentInstructionBuilder;
|
||||
import ru.spcex.clearing.service.builder.PaymentInstructionBuilderFinalMkrDeals;
|
||||
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
||||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
import ru.spcex.clearing.session.stage.ISessionStage;
|
||||
import ru.spcex.clearing.session.stage.StageResult;
|
||||
|
|
@ -62,12 +63,14 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage {
|
|||
private Imdg<Company> companyImdg;
|
||||
private Imdg<SDf03> sDf03Imdg;
|
||||
private Imdg<SDf12> sDf12Imdg;
|
||||
private final AssetTBFProcessing assets;
|
||||
private KafkaSender kafkaSender;
|
||||
private final RegistryManager rgsMng;
|
||||
|
||||
@Autowired
|
||||
public FormingPaymentInstructionReturnMkr(ImdgProvider imdgProvider,
|
||||
KafkaSender kafkaSender, RegistryManager rgsMng) {
|
||||
AssetTBFProcessing assets, KafkaSender kafkaSender, RegistryManager rgsMng) {
|
||||
this.assets = assets;
|
||||
this.kafkaSender = kafkaSender;
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||
|
|
@ -196,6 +199,9 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage {
|
|||
amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance())));
|
||||
setUpdatedStoreInImdg(amt, now);
|
||||
});
|
||||
if (amfO.isPresent() && ambO.isPresent() && payerAmtO.isPresent()) {
|
||||
assets.process(ambO.get(), payerAmtO.get(), amfO.get(), lm_t.getBalance());
|
||||
}
|
||||
}
|
||||
Pair<PaymentInstruction, PaymentInstruction> pmts = PaymentInstructionBuilderFinalMkrDeals.builder(imdgProvider)
|
||||
.lm_t(lm_t)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
|
|||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.error.ClearingError;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
||||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
import ru.spcex.clearing.session.stage.ISessionStage;
|
||||
import ru.spcex.clearing.session.stage.StageResult;
|
||||
|
|
@ -27,6 +28,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
|
@ -45,11 +47,13 @@ public class InspectionObligations implements ISessionStage {
|
|||
private final IMessageResolver msgResolver = new SimpleMessageResolver();
|
||||
private SessionType sessionType;
|
||||
private Section section;
|
||||
private final AssetTBFProcessing assets;
|
||||
|
||||
@Autowired
|
||||
public InspectionObligations(ImdgProvider imdgProvider, RegistryManager registryManager) {
|
||||
public InspectionObligations(ImdgProvider imdgProvider, RegistryManager registryManager, AssetTBFProcessing assets) {
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.registryManager = registryManager;
|
||||
this.assets = assets;
|
||||
}
|
||||
|
||||
public void setSessionType(SessionType sessionType) {
|
||||
|
|
@ -150,9 +154,7 @@ public class InspectionObligations implements ISessionStage {
|
|||
Optional<Registry> registryUnitF = registryManager.findRegByUnit(registry.getCompanyId(), registry.getAccountId(), registry.getContract(), blockedRegistry, RegistryUnit.F);
|
||||
Optional<Registry> registryUnitT = registryManager.findRegByUnit(registry.getCompanyId(), registry.getAccountId(), registry.getContract(), blockedRegistry, RegistryUnit.T);
|
||||
if (registryUnitF.isPresent() && registryUnitT.isPresent()) {
|
||||
registryUnitF.get().setBalance(registryUnitT.get().getBalance().subtract(blockedRegistry.getBalance()));
|
||||
registryUnitF.get().setUpdated(now);
|
||||
registryImdg.update(registryUnitF.get());
|
||||
assets.process(blockedRegistry, registryUnitT.get(), registryUnitF.get(), BigDecimal.ZERO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,27 @@ public class SessionMonitorFactory {
|
|||
}
|
||||
}
|
||||
|
||||
public static SessionMonitor waitStep7(Section section) {
|
||||
switch (section) {
|
||||
case MKR -> {
|
||||
return SessionMonitor.create()
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_04))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_01))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_57));
|
||||
}
|
||||
case FOND -> {
|
||||
return SessionMonitor.create()
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_04))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_13))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_08))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_21))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_01))
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_57));
|
||||
}
|
||||
default -> throw new IllegalStateException("unknown wait conditions for section " + section);
|
||||
}
|
||||
}
|
||||
|
||||
public static SessionMonitor waitRevise() {
|
||||
return SessionMonitor.create()
|
||||
.addCondition(new SdfCondition(SdfTable.SDF_01))
|
||||
|
|
|
|||
|
|
@ -11,14 +11,14 @@ public enum SdfGroup {
|
|||
Sdf01And57(SdfTable.SDF_01, SdfTable.SDF_57),
|
||||
Sdf08And21(SdfTable.SDF_08, SdfTable.SDF_21),
|
||||
|
||||
//------ session groups ------
|
||||
session_Triple(SdfTable.SDF_04, SdfTable.SDF_01, SdfTable.SDF_57),
|
||||
session_Six(SdfTable.SDF_04,
|
||||
SdfTable.SDF_13,
|
||||
SdfTable.SDF_08,
|
||||
SdfTable.SDF_21,
|
||||
SdfTable.SDF_01,
|
||||
SdfTable.SDF_57),
|
||||
//------ session groups ------ (4), (1 57), (13), (8 21)
|
||||
//session_Triple(SdfTable.SDF_04, SdfTable.SDF_01, SdfTable.SDF_57),
|
||||
//session_Six(SdfTable.SDF_04,
|
||||
// SdfTable.SDF_13,
|
||||
// SdfTable.SDF_08,
|
||||
// SdfTable.SDF_21,
|
||||
// SdfTable.SDF_01,
|
||||
// SdfTable.SDF_57),
|
||||
;
|
||||
private final Collection<SdfTable> group;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,19 +4,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.session.stage.TaskType;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.enumeration.SdfTable;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.enumeration.SessionStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
|
|
@ -29,33 +20,33 @@ public class SdfGroupManager {
|
|||
}
|
||||
|
||||
public Optional<SdfGroup> getGroup(SdfTable table) {
|
||||
ImdgPredicateBuilder pb = sessImdg.predicateBuilder();
|
||||
ImdgPredicate prdct = pb.and(
|
||||
pb.equals("workflowStatus", SessionStatus.ACTV.getKey()),
|
||||
pb.equals("sessionStatus", TaskType.FormingPaymentInstruction.getKey())
|
||||
);
|
||||
Collection<Session> sessions = sessImdg.getCollectionObjectsByPredicate(prdct);
|
||||
if (sessions.size() > 1) {
|
||||
throw new IllegalStateException("more than one active session found by predicate "
|
||||
+ prdct
|
||||
+ " ids " + sessions.stream()
|
||||
.map(SpcexObjectBase::getId)
|
||||
.map(Object::toString)
|
||||
.collect(TextUtil.join));
|
||||
}
|
||||
if (sessions.size() == 0) {
|
||||
//ImdgPredicateBuilder pb = sessImdg.predicateBuilder();
|
||||
//ImdgPredicate prdct = pb.and(
|
||||
// pb.equals("workflowStatus", SessionStatus.ACTV.getKey()),
|
||||
// pb.equals("sessionStatus", TaskType.FormingPaymentInstruction.getKey())
|
||||
//);
|
||||
//Collection<Session> sessions = sessImdg.getCollectionObjectsByPredicate(prdct);
|
||||
//if (sessions.size() > 1) {
|
||||
// throw new IllegalStateException("more than one active session found by predicate "
|
||||
// + prdct
|
||||
// + " ids " + sessions.stream()
|
||||
// .map(SpcexObjectBase::getId)
|
||||
// .map(Object::toString)
|
||||
// .collect(TextUtil.join));
|
||||
//}
|
||||
//if (sessions.size() == 0) {
|
||||
return SdfGroup.groupByTable(table);
|
||||
} else {
|
||||
Session session = sessions.iterator().next();
|
||||
Section section = IEnumKey.getEnumByKey(Section.class, session.getSection());
|
||||
if (section == null) {
|
||||
throw new IllegalStateException("couldn't determine section of session.id=" + session.getId());
|
||||
}
|
||||
if (Section.MKR.equals(section)) {
|
||||
return Optional.of(SdfGroup.session_Triple);
|
||||
} else if (Section.FOND.equals(section)) {
|
||||
return Optional.of(SdfGroup.session_Six);
|
||||
} else throw new IllegalStateException("unknown section '" + section + "' of session.id=" + session.getId());
|
||||
}
|
||||
//} else {
|
||||
// Session session = sessions.iterator().next();
|
||||
// Section section = IEnumKey.getEnumByKey(Section.class, session.getSection());
|
||||
// if (section == null) {
|
||||
// throw new IllegalStateException("couldn't determine section of session.id=" + session.getId());
|
||||
// }
|
||||
// if (Section.MKR.equals(section)) {
|
||||
// return Optional.of(SdfGroup.session_Triple);
|
||||
// } else if (Section.FOND.equals(section)) {
|
||||
// return Optional.of(SdfGroup.session_Six);
|
||||
// } else throw new IllegalStateException("unknown section '" + section + "' of session.id=" + session.getId());
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,15 +123,18 @@ public class StatementServiceV2 {
|
|||
processSdf08And21(find(SdfTable.SDF_08, fullGroup), find(SdfTable.SDF_21, fullGroup));
|
||||
} else if (sdfGroup.get() == SdfGroup.Sdf01And57) {
|
||||
processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup));
|
||||
} else if (sdfGroup.get() == SdfGroup.session_Triple) {
|
||||
processSdf04(find(SdfTable.SDF_04, fullGroup));
|
||||
processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup));
|
||||
} else if (sdfGroup.get() == SdfGroup.session_Six) {
|
||||
processSdf04(find(SdfTable.SDF_04, fullGroup));
|
||||
processSdf13(find(SdfTable.SDF_13, fullGroup));
|
||||
processSdf08And21(find(SdfTable.SDF_08, fullGroup), find(SdfTable.SDF_21, fullGroup));
|
||||
processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup));
|
||||
} else {
|
||||
}
|
||||
//else if (sdfGroup.get() == SdfGroup.session_Triple) {
|
||||
// processSdf04(find(SdfTable.SDF_04, fullGroup));
|
||||
// processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup));
|
||||
//}
|
||||
//else if (sdfGroup.get() == SdfGroup.session_Six) {
|
||||
// processSdf04(find(SdfTable.SDF_04, fullGroup));
|
||||
// processSdf13(find(SdfTable.SDF_13, fullGroup));
|
||||
// processSdf08And21(find(SdfTable.SDF_08, fullGroup), find(SdfTable.SDF_21, fullGroup));
|
||||
// processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup));
|
||||
//}
|
||||
else {
|
||||
throw new IllegalStateException("not implemented");
|
||||
}
|
||||
}
|
||||
|
|
@ -160,7 +163,9 @@ public class StatementServiceV2 {
|
|||
processSdf21(sdf21);
|
||||
removeFirstWithSameTableAndGroupId(sdf21);
|
||||
//fixme ревизия для бумаг reviser.doRevise(pair.getFirst().getGroupId());
|
||||
log.info("pair sdf08/sdf21 processed successfully");
|
||||
SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_08, SdfTable.SDF_21);
|
||||
kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
||||
log.info("pair sdf08/sdf21 processed successfully");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue