clearing-service http://jira.mfd.msk:8088/browse/CLS-657 изменение StartRevise для SDf51
This commit is contained in:
parent
ba4b9aa042
commit
1a940c4322
1 changed files with 38 additions and 7 deletions
|
|
@ -15,6 +15,7 @@ import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.misc.Currency;
|
import ru.clearing.classes.statics.data.misc.Currency;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf51;
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf56;
|
import ru.clearing.classes.statics.data.sdf.SDf56;
|
||||||
import ru.clearing.classes.statics.data.statement.Statement;
|
import ru.clearing.classes.statics.data.statement.Statement;
|
||||||
import ru.spcex.clearing.error.ClearingError;
|
import ru.spcex.clearing.error.ClearingError;
|
||||||
|
|
@ -57,6 +58,7 @@ public class BalanceRevise implements ISessionStage {
|
||||||
private Imdg<Statement> statementImdg;
|
private Imdg<Statement> statementImdg;
|
||||||
private Imdg<Registry> registryImdg;
|
private Imdg<Registry> registryImdg;
|
||||||
private Imdg<Currency> currencyImdg;
|
private Imdg<Currency> currencyImdg;
|
||||||
|
private Imdg<SDf51> sDf51Imdg;
|
||||||
private Imdg<SDf56> sDf56Imdg;
|
private Imdg<SDf56> sDf56Imdg;
|
||||||
private KafkaSender kafkaSender;
|
private KafkaSender kafkaSender;
|
||||||
|
|
||||||
|
|
@ -67,6 +69,7 @@ public class BalanceRevise implements ISessionStage {
|
||||||
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
||||||
this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class);
|
||||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
|
this.sDf51Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf51, SDf51.class);
|
||||||
this.sDf56Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf56, SDf56.class);
|
this.sDf56Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf56, SDf56.class);
|
||||||
this.kafkaSender = kafkaSender;
|
this.kafkaSender = kafkaSender;
|
||||||
}
|
}
|
||||||
|
|
@ -74,12 +77,15 @@ public class BalanceRevise implements ISessionStage {
|
||||||
@Override
|
@Override
|
||||||
public StageResult<?> submit(Task<?> task) {
|
public StageResult<?> submit(Task<?> task) {
|
||||||
switch (task.getTaskType()) {
|
switch (task.getTaskType()) {
|
||||||
case StartRevise, FormingPaymentInstruction -> {
|
case StartRevise -> {
|
||||||
|
return sendSdfs51();
|
||||||
|
}
|
||||||
|
case FormingPaymentInstruction -> {
|
||||||
LocalTime fromTime = null;
|
LocalTime fromTime = null;
|
||||||
if (task.getData() instanceof LocalTime) {
|
if (task.getData() instanceof LocalTime) {
|
||||||
fromTime = (LocalTime) task.getData();
|
fromTime = (LocalTime) task.getData();
|
||||||
}
|
}
|
||||||
return sendSdfs(fromTime);
|
return sendSdfs56(fromTime);
|
||||||
}
|
}
|
||||||
case ContinueRevise -> {
|
case ContinueRevise -> {
|
||||||
return revise(); // основная сверка
|
return revise(); // основная сверка
|
||||||
|
|
@ -95,26 +101,31 @@ public class BalanceRevise implements ISessionStage {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private StageResult<?> sendSdfs(LocalTime fromTime) {
|
private StageResult<?> sendSdfs56(LocalTime fromTime) {
|
||||||
Collection<Long> currencies = currencyImdg.projectSingleAttribute("id");
|
|
||||||
Long millis = null;
|
Long millis = null;
|
||||||
if (fromTime != null) {
|
if (fromTime != null) {
|
||||||
log.debug("sendSdf, parameter fromTime={}", fromTime);
|
log.debug("sendSdf 56, parameter fromTime={}", fromTime);
|
||||||
Instant fromInstant = TimeUtil.localDateTimeToInstant(LocalDateTime.of(LocalDate.now(), fromTime));
|
Instant fromInstant = TimeUtil.localDateTimeToInstant(LocalDateTime.of(LocalDate.now(), fromTime));
|
||||||
millis = fromInstant.toEpochMilli();
|
millis = fromInstant.toEpochMilli();
|
||||||
} else {
|
} else {
|
||||||
|
Collection<Long> currencies = currencyImdg.projectSingleAttribute("id");
|
||||||
Statement statement = statementImdg.aggregateByMax("created", StatementRevisePredicate.get(statementImdg, currencies));
|
Statement statement = statementImdg.aggregateByMax("created", StatementRevisePredicate.get(statementImdg, currencies));
|
||||||
if (statement != null) {
|
if (statement != null) {
|
||||||
log.debug("sendSdf, parameter fromTime not set, use max(statement.created)={}", statement.getCreated());
|
log.debug("sendSdf 56, parameter fromTime not set, use max(statement.created)={}", statement.getCreated());
|
||||||
millis = statement.getCreated().toEpochMilli();
|
millis = statement.getCreated().toEpochMilli();
|
||||||
} else {
|
} else {
|
||||||
log.debug("sendSdf, parameter fromTime not set, and statement's not found.");
|
log.debug("sendSdf 56, parameter fromTime not set, and statement's not found.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newSDf56(millis);
|
newSDf56(millis);
|
||||||
return new StageResult<>(null, true);
|
return new StageResult<>(null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private StageResult<?> sendSdfs51() {
|
||||||
|
newSDf51();
|
||||||
|
return new StageResult<>(null, true);
|
||||||
|
}
|
||||||
|
|
||||||
private StageResult<?> revise() {
|
private StageResult<?> revise() {
|
||||||
String statementSQL = String.format("inOutSDfType = %s and operationStatus = %s and statementType = %s",
|
String statementSQL = String.format("inOutSDfType = %s and operationStatus = %s and statementType = %s",
|
||||||
InOutSDfType.type1.getKey(), OperationStatus.Pending.getKey(), StatementType.full.getKey());
|
InOutSDfType.type1.getKey(), OperationStatus.Pending.getKey(), StatementType.full.getKey());
|
||||||
|
|
@ -220,4 +231,24 @@ public class BalanceRevise implements ISessionStage {
|
||||||
kafkaSender.sendRequestToQueue(Consts.SDF56_PROCESS, requestForExporter);
|
kafkaSender.sendRequestToQueue(Consts.SDF56_PROCESS, requestForExporter);
|
||||||
log.debug("successfully processed, new id {}", sDf56.getId());
|
log.debug("successfully processed, new id {}", sDf56.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void newSDf51() {
|
||||||
|
log.debug("creating sdf51");
|
||||||
|
SDf51 sDf51 = new SDf51();
|
||||||
|
Instant now = Instant.now();
|
||||||
|
Long numberId = idGenerator.nextId(); // из генератора
|
||||||
|
sDf51.setNumber(numberId.toString());
|
||||||
|
if (sDf51.getNumber().length() > 10) {
|
||||||
|
log.warn("SDf51 number='{}' too large that 10 symbols", sDf51.getNumber());
|
||||||
|
}
|
||||||
|
String datetime = String.valueOf(now.minus(1, ChronoUnit.DAYS).toEpochMilli());
|
||||||
|
sDf51.setDatetime(datetime); // Дата и время сообщения
|
||||||
|
sDf51.setGenerationTime(now);
|
||||||
|
sDf51.setGenerationId(numberId);
|
||||||
|
sDf51Imdg.insert(sDf51);
|
||||||
|
SdfClearingRequest requestForExporter = new SdfClearingRequest();
|
||||||
|
requestForExporter.setGroupId(sDf51.getGenerationId());
|
||||||
|
kafkaSender.sendRequestToQueue(Consts.SDF51_PROCESS, requestForExporter);
|
||||||
|
log.debug("successfully processed, new id {}", sDf51.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue