clearing-service Sdf04 ожидание полностью готовой группы в SessionMonitor
This commit is contained in:
parent
fe61ca6e02
commit
a448a78415
4 changed files with 38 additions and 1 deletions
|
|
@ -15,12 +15,15 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdf0
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.SessionContinueEvent;
|
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.SessionContinueEvent;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.NotificationNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
import ru.spcex.clearing.service.executors.AbstractExecutor;
|
import ru.spcex.clearing.service.executors.AbstractExecutor;
|
||||||
import ru.spcex.clearing.service.executors.Reviser;
|
import ru.spcex.clearing.service.executors.Reviser;
|
||||||
import ru.spcex.clearing.service.model.Result;
|
import ru.spcex.clearing.service.model.Result;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
|
import ru.spcex.platform.enumeration.ObjectType;
|
||||||
|
import ru.spcex.platform.enumeration.Priority;
|
||||||
import ru.spcex.platform.enumeration.SdfTable;
|
import ru.spcex.platform.enumeration.SdfTable;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -236,7 +239,15 @@ public class StatementService extends QueueConsumer implements InitializingBean
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
Result res = service.execute(sdfGroup, statementRequest);
|
Result res = service.execute(sdfGroup, statementRequest);
|
||||||
SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_04);
|
SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_04);
|
||||||
kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
if (res.isAnyHasError()) {
|
||||||
|
NotificationNewRequest nRequest = new NotificationNewRequest();
|
||||||
|
nRequest.setObjectType(ObjectType.rgst.getKey());
|
||||||
|
nRequest.setPriority(Priority.HIGH.getKey());
|
||||||
|
nRequest.setComment(String.format("Ошибка : некоторые из новых SDF_04 имеют неправильный статус"));
|
||||||
|
kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, nRequest);
|
||||||
|
} else { // отправить в SessionMonitor
|
||||||
|
kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn("Executor for SDF_04 not set");
|
log.warn("Executor for SDF_04 not set");
|
||||||
}
|
}
|
||||||
|
|
@ -272,6 +283,15 @@ public class StatementService extends QueueConsumer implements InitializingBean
|
||||||
AbstractExecutor service = executorsMap.get(SdfTable.SDF_13);
|
AbstractExecutor service = executorsMap.get(SdfTable.SDF_13);
|
||||||
Result res = service.execute(sdfGroup, statementRequest);
|
Result res = service.execute(sdfGroup, statementRequest);
|
||||||
SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_13);
|
SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_13);
|
||||||
|
// if (res.isAnyHasError()) { todo
|
||||||
|
// NotificationNewRequest nRequest = new NotificationNewRequest();
|
||||||
|
// nRequest.setObjectType(ObjectType.rgst.getKey());
|
||||||
|
// nRequest.setPriority(Priority.HIGH.getKey());
|
||||||
|
// nRequest.setComment(String.format("Ошибка : некоторые из новых SDF_13 имеют неправильный статус"));
|
||||||
|
// kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, nRequest);
|
||||||
|
// } else {
|
||||||
|
// kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
||||||
|
// }
|
||||||
kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
||||||
// finishSendCommand(res, service, statementRequest);
|
// finishSendCommand(res, service, statementRequest);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,12 @@ public class Sdf04Executor extends AbstractExecutor<SDf04> {
|
||||||
Result result = new Result();
|
Result result = new Result();
|
||||||
Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId();
|
Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId();
|
||||||
result.setChildGenerationId(generationIdForGroup);
|
result.setChildGenerationId(generationIdForGroup);
|
||||||
|
result.setAnyHasError(false);
|
||||||
for (SDf04 sdf04 : sdf) {
|
for (SDf04 sdf04 : sdf) {
|
||||||
|
if (!("OK!".equals(sdf04.getImp_result()))) {
|
||||||
|
log.trace("sdf04[{}].Imp_result=\"{}\" was not ok.", sdf04.getId(), sdf04.getImp_result());
|
||||||
|
result.setAnyHasError(true);
|
||||||
|
}
|
||||||
//обычно мы ищем по группу sdf04, здесь как будто всегда только одна запись, todo нужно прочекать этот момент
|
//обычно мы ищем по группу sdf04, здесь как будто всегда только одна запись, todo нужно прочекать этот момент
|
||||||
log.debug("Process sdf04 record; sdf04.id: {}", sdf04.getId());
|
log.debug("Process sdf04 record; sdf04.id: {}", sdf04.getId());
|
||||||
Collection<Registry> registries;
|
Collection<Registry> registries;
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ public class Result {
|
||||||
private List<AccountSdfRequestPart> accountRequests = new ArrayList<>();
|
private List<AccountSdfRequestPart> accountRequests = new ArrayList<>();
|
||||||
private Long childGenerationId;
|
private Long childGenerationId;
|
||||||
private String fileName;
|
private String fileName;
|
||||||
|
private boolean anyHasError;
|
||||||
|
|
||||||
public List<AccountSdfRequestPart> getAccountRequests() {
|
public List<AccountSdfRequestPart> getAccountRequests() {
|
||||||
return accountRequests;
|
return accountRequests;
|
||||||
|
|
@ -33,4 +34,12 @@ public class Result {
|
||||||
public void setFileName(String fileName) {
|
public void setFileName(String fileName) {
|
||||||
this.fileName = fileName;
|
this.fileName = fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isAnyHasError() {
|
||||||
|
return anyHasError;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnyHasError(boolean anyHasError) {
|
||||||
|
this.anyHasError = anyHasError;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ package ru.spcex.clearing.session.stage.monitor;
|
||||||
import ru.spcex.platform.enumeration.SdfTable;
|
import ru.spcex.platform.enumeration.SdfTable;
|
||||||
import ru.spcex.platform.enumeration.Section;
|
import ru.spcex.platform.enumeration.Section;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see ru.spcex.clearing.platform.messaging.domain.cud.clearing.SessionContinueEvent
|
||||||
|
*/
|
||||||
public class SessionMonitorFactory {
|
public class SessionMonitorFactory {
|
||||||
public static SessionMonitor paymentsWereCreated(Section section) {
|
public static SessionMonitor paymentsWereCreated(Section section) {
|
||||||
switch (section) {
|
switch (section) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue