sdf01/sdf02 bug fix sdf02 groupid

This commit is contained in:
ialbert 2023-08-07 17:52:24 +03:00
parent edb00e4608
commit 9f9b260a4f
9 changed files with 45 additions and 10 deletions

View file

@ -275,15 +275,16 @@ public class ClearingAccountService extends QueueConsumer implements Initializin
}
sendStatementRequestBack(req.getGroupingSdf01Id(), accountToStatement);
sendStatementRequestBack(req.getGroupingSdf01Id(), req.getGroupingSdf02Id(), accountToStatement);
log.debug("successfully processed, grouping id={}, processed number={}", req.getGroupingSdf01Id(), accountToStatement.size());
return null;
}
public void sendStatementRequestBack(Long groupingSdf01Id, List<AccountSdfToStatementRequestPart> results) {
public void sendStatementRequestBack(Long groupingSdf01Id, Long groupSdf02Id, List<AccountSdfToStatementRequestPart> results) {
StatementRequest request = new StatementRequest();
request.setGroupId(groupingSdf01Id);
request.setChildGenerationId(groupSdf02Id);
request.setAccountCreationResults(results);
request.setContinueSdf(true);
request.setTable(SdfTable.SDF_01); // по нему запрос получили

View file

@ -213,15 +213,16 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea
}
}
sendStatementRequestBack(req.getGroupingSdf01Id(), accountToStatement);
sendStatementRequestBack(req.getGroupingSdf01Id(), req.getGroupingSdf02Id(), accountToStatement);
log.debug("successfully processed, grouping id={}, processed number={}", req.getGroupingSdf01Id(), accountToStatement.size());
return null;
}
public void sendStatementRequestBack(Long groupingSdf01Id, List<AccountSdfToStatementRequestPart> results) {
public void sendStatementRequestBack(Long groupingSdf01Id, Long groupingSdf02Id, List<AccountSdfToStatementRequestPart> results) {
StatementRequest request = new StatementRequest();
request.setGroupId(groupingSdf01Id);
request.setChildGenerationId(groupingSdf02Id);
request.setContinueSdf(true); //fixme????
request.setAccountCreationResults(results);
request.setTable(SdfTable.SDF_08); // по нему запрос получили

View file

@ -185,7 +185,7 @@ public class ValidationConfig {
return new ValidatorImpl<>(context,
Sdf57ValidationRule.CompanyDebOrCredPresent,
Sdf57ValidationRule.AccountDebOrCredPresent,
Sdf57ValidationRule.CurrencyCode
Sdf57ValidationRule.CurrencyCodeCheck
);
};
}

View file

@ -239,6 +239,8 @@ public class StatementService extends QueueConsumer implements InitializingBean
sdfGroup = sdfImdg.getCollectionObjectsByFieldValues(Map.of(
"generationId", statementRequest.getGroupId()));
} else {
log.debug("accounts were created: {} for generationId {} child generationId {}",
statementRequest.getAccountCreationResults().size(), statementRequest.getGroupId(), statementRequest.getChildGenerationId());
//todo могут ли тут реквесты бегать по кругу, если да, то у нас проблемы
sdfGroup = statementRequest.getAccountCreationResults()
.stream()
@ -249,7 +251,7 @@ public class StatementService extends QueueConsumer implements InitializingBean
AbstractExecutor service = executorsMap.get(SdfTable.SDF_01);
Result res = service.execute(sdfGroup, statementRequest);
if (res.getAccountRequests().size() != 0) {
kafkaSender.sendRequestToQueue(Consts.ACCOUNT_NEW_SDF01, createAccountsRequest(statementRequest.getGroupId(), res.getAccountRequests()));
kafkaSender.sendRequestToQueue(Consts.ACCOUNT_NEW_SDF01, createAccountsRequest(statementRequest.getGroupId(), res.getAccountRequests(), res.getGenerationId()));
return res;
} else if (service.isNeedToSendCommand()) {
service.sendCommand(kafkaSender, res);
@ -344,4 +346,12 @@ public class StatementService extends QueueConsumer implements InitializingBean
r.setAccounts(accountRequests);
return r;
}
private AccountSdf01Request createAccountsRequest(Long sdf01GroupingId, List<AccountSdfRequestPart> accountRequests, Long childGenerationId) {
AccountSdf01Request r = new AccountSdf01Request();
r.setGroupingSdf01Id(sdf01GroupingId);
r.setGroupingSdf02Id(childGenerationId);
r.setAccounts(accountRequests);
return r;
}
}

View file

@ -104,7 +104,7 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
public Result execute(Collection<SDf01> sdf, StatementRequest statementRequest) {
Result result = new Result();
Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId();
Long generationIdForGroup = statementRequest.getChildGenerationId() != null ? statementRequest.getChildGenerationId() : imdgProvider.getImdgIdGenerator().nextId();
result.setGenerationId(generationIdForGroup);
// boolean reviseFailed = false;
log.info("SDF01 execution: sdf01 number={}, groupId={}", sdf.size(), sdf.stream().findFirst().map(SDf01::getGenerationId).orElse(null));

View file

@ -5,9 +5,11 @@ import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.sdf.SDf57;
import ru.spcex.clearing.error.ClearingError;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CurrencyCode;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.text.TextUtil;
import ru.spcex.platform.utils.validation.IValidationRule;
@ -62,11 +64,11 @@ public enum Sdf57ValidationRule implements IValidationRule<ImdgValidationContext
return empty();
}
}, CurrencyCode() {
}, CurrencyCodeCheck() {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<SDf57> context) {
SDf57 sdf57 = context.getValidatedObject();
if (!ru.spcex.platform.enumeration.CurrencyCode.RUR.equalsByKey(sdf57.getPay_val())) {
if (!IEnumKey.contains(sdf57.getPay_val(), CurrencyCode.class)) {
return of(ClearingError.CompanyDebitCheck, sdf57.getPay_val());
}
return empty();

View file

@ -88,7 +88,7 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
tableRows = map.getAllValues();
}
if (tableRows.isEmpty()) {
log.info("uuid {}. Map {} is empty.", resultContainer.getUuid(), resultContainer.getTableForExport().getHazelcastMapName());
log.info("uuid {}. Map {} is empty, generationId {}", resultContainer.getUuid(), resultContainer.getTableForExport().getHazelcastMapName(), resultContainer.getGroupId());
return StageResult.COMPLETE;
}
for (SpcexObjectBase value : tableRows) {

View file

@ -9,7 +9,10 @@ import java.util.List;
*/
public class AccountSdf01Request {
@JsonProperty
private Long groupingSdf01Id;
@JsonProperty
private Long groupingSdf02Id;
@JsonProperty("accounts")
List<AccountSdfRequestPart> accounts;
@ -29,4 +32,12 @@ public class AccountSdf01Request {
public void setGroupingSdf01Id(Long groupingSdf01Id) {
this.groupingSdf01Id = groupingSdf01Id;
}
public Long getGroupingSdf02Id() {
return groupingSdf02Id;
}
public void setGroupingSdf02Id(Long groupingSdf02Id) {
this.groupingSdf02Id = groupingSdf02Id;
}
}

View file

@ -16,6 +16,8 @@ public class StatementRequest {
@JsonProperty
List<AccountSdfToStatementRequestPart> accountCreationResults = new ArrayList<>();
@JsonProperty
private Long childGenerationId;
@JsonProperty
private boolean continueSdf = false;
public Long getGroupId() {
@ -49,4 +51,12 @@ public class StatementRequest {
public void setAccountCreationResults(List<AccountSdfToStatementRequestPart> accountCreationResults) {
this.accountCreationResults = accountCreationResults;
}
public Long getChildGenerationId() {
return childGenerationId;
}
public void setChildGenerationId(Long childGenerationId) {
this.childGenerationId = childGenerationId;
}
}